.\"   $Id: GENLIB_LOSIGMERGE.3,v 1.1 2002/03/08 14:08:10 fred Exp $
.\" @(#)GENLIB_LOSIGMERGE.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
GENLIB_LOSIGMERGE
.XE \}
.TH GENLIB_LOSIGMERGE.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
.SH NAME
GENLIB_LOSIGMERGE \- merge two logical signals
.SH SYNOPSIS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include <genlib.h>
void GENLIB_LOSIGMERGE(signal1, signal2)
char \(**signal1, \(**signal2;
.ft R
.fi
.so man1/alc_origin.1
.SH PARAMETERS
.TP 20
\fIsignal1\fP
Name of a signal to be merged
.TP 20
\fIsignal2\fP
Name of a signal to be merged
.SH DESCRIPTION
\fBLOSIGMERGE\fP merges the two signals, \fIsignal1\fP and \fIsignal2\fP.
This function can be used anywhere in the \fBgenlib\fP program, but its
resultings actions must be known by the user.
.TP 10
1)
If \fIsignal1\fP and \fIsignal2\fP have not been used yet, then the
corresponding signal can be later accessed through any of these aliases.
.TP 10
2)
If one of \fIsignal1\fP or \fIsignal2\fP has not been used yet, then all
further reference to the not defined name will be made on the same signal than
the defined signal.
.TP 10
3)
If both signals exist, then they are merged, and both can be used for reference
to the same signal later on.
.LP
Since most of the file formats do not allow multiple name for a
single signal, the choice is made to keep for disk usage the name that appears
in the cell interface, if any.
Otherwise, the choice is randomly made by \fBLOSIGMERGE\fP.
.TP 10
Warning
This function allows the user to internally connect two external connectors.
This is \fInot\fP a valid disk representation for netlist generated by
\fBgenlib\fP.
The \fBSAVE_LOFIG\fP function will exit if encountering such a situation.
.br
In order to avoid it, either take care not to link such signals, or build
all your hierarchy in memory, make sure your block does not have such signals,
and call \fPFLATTEN_LOFIG\fP(3) just before saving.
.SH EXAMPLE
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include <genlib.h>
main()
{
	/\(** Create a figure to work on  \(**/
	GENLIB_DEF_LOFIG("cell");
	/\(** Define interface \(**
	GENLIB_LOCON(...
	/\(** Place an instance \(**/
	GENLIB_LOINS("no2_y" ,"no3" ,"a8_s" ,"a9_s" ,"new_no3_s" ,"vdd" ,"vss" ,0);
	GENLIB_LOINS("no2_y" ,"no4" ,"a12_s" ,"a15_s" ,"no4_s" ,"vdd" ,"vss" ,0);
	GENLIB_LOINS("a2_y" ,"a22" ,"no3_s" ,"no4_s" ,"a22_s" ,"vdd" ,"vss" ,0);
	GENLIB_LOSIGMERGE("new_no3_s", "no3_s");
	/\(** Save all that on disk \(**/
	GENLIB_SAVE_LOFIG();
}
.ft R
.fi
.SH SEE ALSO
.BR genlib (1),
.BR GENLIB_LOINS (3),
.BR GENLIB_LOCON (3),
.BR GENLIB_FLATTEN_LOFIG (3),
.BR GENLIB_SAVE_PHFIG (3).


.so man1/alc_bug_report.1

